#ifndef __MODULEPATTERN_H__
#define __MODULEPATTERN_H__
#include <vector>
#include <stdexcept>

namespace modx {

	typedef struct _ModuleNote {
		short noteNumber;
		unsigned char sampleNumber;
		unsigned char effectNumber;
		unsigned char effectParam;
	}ModuleNote, *pModuleNote;

	class ModulePattern {
	
	public:
		ModulePattern();
		ModulePattern(unsigned short* noteTable, unsigned char numChannels, unsigned char* rawPattern);
		
		std::vector<ModuleNote>* getRow(unsigned char rowNumber);
	private:
		std::vector< std::vector<ModuleNote> > patternContents;
	};
}
#endif
